with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;
with tokens;                use tokens;

package lexer is

   type Lexer_Type is record
      Input         : Unbounded_String;
      Position      : Positive;
      Read_Position : Positive;
      Ch            : Character;
   end record;

   function New_Lexer (Input : in Unbounded_String) return Lexer_Type;

   function Next_Token (Lexer : in out Lexer_Type) return tokens.Token_Type;

end lexer;
